\changetocdepth {2}
\changetocdepth {2}
\contentsline {chapter}{Spis tre\'sci}{i}{section*.1}
\contentsline {chapter}{\chapternumberline {1}Wst\k ep}{1}{chapter.1}
\contentsline {section}{\numberline {1.1}Platforma .NET i CLR}{2}{section.1.1}
\contentsline {section}{\numberline {1.2}Za\IeC {\l }o\.zenia}{3}{section.1.2}
\contentsline {section}{\numberline {1.3}Plan pracy}{4}{section.1.3}
\contentsline {chapter}{\chapternumberline {2}Wprowadzenie do programowania kontraktowego}{5}{chapter.2}
\contentsline {chapter}{\chapternumberline {3}Om\'owienie funkcjonalno\'sci biblioteki}{11}{chapter.3}
\contentsline {section}{\numberline {3.1}Og\'olny schemat architektury biblioteki AsProfiled}{11}{section.3.1}
\contentsline {section}{\numberline {3.2}Przyk\IeC {\l }ad wykorzystania biblioteki AsProfiled}{13}{section.3.2}
\contentsline {section}{\numberline {3.3}Inspekcja nadzorowanego programu}{15}{section.3.3}
\contentsline {section}{\numberline {3.4}Kontrakty}{16}{section.3.4}
\contentsline {section}{\numberline {3.5}Funkcjonalno\'sci biblioteki}{17}{section.3.5}
\contentsline {subsection}{\numberline {3.5.1}Odczytywanie warto\'sci argument\'ow metod}{17}{subsection.3.5.1}
\contentsline {subsection}{\numberline {3.5.2}Warto\'sci zwracane}{18}{subsection.3.5.2}
\contentsline {subsection}{\numberline {3.5.3}Warto\'sci pocz\k atkowe}{18}{subsection.3.5.3}
\contentsline {chapter}{\chapternumberline {4}Szczeg\'o\IeC {\l }y implementacji}{20}{chapter.4}
\contentsline {section}{\numberline {4.1}Atrybuty jako kontrakty}{23}{section.4.1}
\contentsline {section}{\numberline {4.2}Gramatyka kontrakt\'ow}{23}{section.4.2}
\contentsline {section}{\numberline {4.3}Om\'owienie i implementacja interfejs\'ow}{25}{section.4.3}
\contentsline {section}{\numberline {4.4}Odbieranie notyfikacji o zdarzeniach zachodz\k acych w programie}{28}{section.4.4}
\contentsline {section}{\numberline {4.5}Odczyt metadanych}{29}{section.4.5}
\contentsline {subsection}{\numberline {4.5.1}Reprezentacja metadanych}{30}{subsection.4.5.1}
\contentsline {subsection}{\numberline {4.5.2}Interpretacja metadanych}{32}{subsection.4.5.2}
\contentsline {subsection}{\numberline {4.5.3}Odczyt metadanych w bibliotece AsProfiled}{36}{subsection.4.5.3}
\contentsline {section}{\numberline {4.6}Parsowanie wyra\.ze\'n zawartych w kontraktach}{37}{section.4.6}
\contentsline {section}{\numberline {4.7}Inspekcja warto\'sci zmiennych}{38}{section.4.7}
\contentsline {subsection}{\numberline {4.7.1}Typy wbudowane}{41}{subsection.4.7.1}
\contentsline {subsection}{\numberline {4.7.2}Odwo\IeC {\l }ania do warto\'sci sk\IeC {\l }adowych obiekt\'ow z\IeC {\l }o\.zonych}{43}{subsection.4.7.2}
\contentsline {section}{\numberline {4.8}Ewaluacja kontrakt\'ow}{43}{section.4.8}
\contentsline {subsection}{\numberline {4.8.1}Zachowywanie warto\'sci pocz\k atkowych}{44}{subsection.4.8.1}
\contentsline {subsection}{\numberline {4.8.2}Warto\'sci zwracane}{46}{subsection.4.8.2}
\contentsline {chapter}{\chapternumberline {5}Por\'ownanie z innymi bibliotekami}{47}{chapter.5}
\contentsline {section}{\numberline {5.1}Code Contracts}{47}{section.5.1}
\contentsline {section}{\numberline {5.2}LinFu.Contracts}{51}{section.5.2}
\contentsline {section}{\numberline {5.3}Por\'ownanie funkcjonalno\'sci opisywanych bibliotek}{58}{section.5.3}
\contentsline {chapter}{\chapternumberline {6}Podsumowanie}{59}{chapter.6}
\contentsline {chapter}{Bibliografia}{61}{section*.3}
